home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1993-11-06 | 2.1 KB | 102 lines |
- IMPLEMENTATION MODULE RsrcMgr;
-
- (*
- AES Resource Manager.
-
- UK __DATE__ __TIME__
- *)
-
- (*IMP_SWITCHES*)
-
- FROM AES IMPORT Control,Global,IntIn,IntOut,Addr,crystal,Version,Integer;
- FROM PORTAB IMPORT UNSIGNEDWORD,ANYPOINTER,NULL;
- #ifdef MM2
- FROM SYSTEM IMPORT CADR;
- #else
- FROM SYSTEM IMPORT ADR;
- #endif
- AES_SYSTEM_IMPORT
-
- #if Seimet
- CONST F110 = 06E000101H;
- F111 = 06F000100H;
- F112 = 070020100H;
- F113 = 071020101H;
- F114 = 072010101H;
- F115 = 073000101H;
- #endif
-
- PROCEDURE load(REF Name: ARRAY OF CHAR): BOOLEAN;
- BEGIN
- #ifdef MM2
- Addr[0]:= CADR(Name);
- #else
- Addr[0]:= ADR(Name);
- #endif
- Global.ApPTree:= NULL; (* must be set to zero *)
- crystal(110,0,1,1);
- RETURN IntOut[0] # 0;
- END load;
-
- PROCEDURE free;
- BEGIN
- crystal(111,0,1,0);
- END free;
-
- PROCEDURE gaddr( Type : ResourceTypes;
- Index : TreeIndex;
- VAR OutAddr: ANYPOINTER): BOOLEAN;
- BEGIN
- WITH IntIn DO
- Array[0]:= ORD(Type);
- Array[1]:= Index;
- END;
- Control.SizeAddrOut:= 1;
- crystal(112,2,1,0);
- Control.SizeAddrOut:= 0;
- OutAddr:= Addr[2];
- RETURN IntOut[0] # 0;
- END gaddr;
-
- PROCEDURE saddr(Type : ResourceTypes;
- Index : TreeIndex;
- InAddr: ANYPOINTER): BOOLEAN;
- BEGIN
- WITH IntIn DO
- Array[0]:= ORD(Type);
- Array[1]:= Index;
- END;
- Addr[0]:= InAddr;
- crystal(113,2,1,1);
- RETURN IntOut[0] # 0;
- END saddr;
-
- PROCEDURE obfix(PTree: TreePtr;
- Ob : ObjectIndex);
- BEGIN
- IntIn.Array[0]:= Ob;
- Addr[0]:= PTree;
- crystal(114,1,1,1);
- END obfix;
-
- PROCEDURE rcfix(RawRsc: RsPtr);
- BEGIN
- #if ST
- IF (Version() >= 0399H) AND (Version() < 1042H) THEN
- Addr[0]:= RawRsc;
- crystal(115,0,1,1);
- ELSE
- IntOut[0]:= 0; (* error *)
- END;
- #endif
- END rcfix;
-
- BEGIN
- rsrcload:= load; RsrcLoad:= rsrcload;
- rsrcfree:= free; RsrcFree:= rsrcfree;
- rsrcgaddr:= gaddr; RsrcGAddr:= rsrcgaddr;
- rsrcsaddr:= saddr; RsrcSAddr:= rsrcsaddr;
- rsrcobfix:= obfix; RsrcObFix:= rsrcobfix;
- rsrcrcfix:= rcfix; RsrcRCFix:= rsrcrcfix;
- END RsrcMgr.
-